9 research outputs found

    Encoding TLA+ set theory into many-sorted first-order logic

    Get PDF
    We present an encoding of Zermelo-Fraenkel set theory into many-sorted first-order logic, the input language of state-of-the-art SMT solvers. This translation is the main component of a back-end prover based on SMT solvers in the TLA+ Proof System

    Formalización de la aritmética de TLA+ en el asistente de pruebas Isabelle

    Get PDF
    TLA+ es un lenguaje para especificar sistemas distribuidos y concurrentes. Está basado en una lógica clásica de primer orden no-tipada y en una variante de la teoría de conjuntos estándar ZF, más una pequeña parte de lógica temporal. Una versión extendida del lenguaje, llamada TLA+2, permite además escribir pruebas estructuradas jerárquicamente para verificar propiedades de las especificaciones. El Administrador de Pruebas TLAPM transforma las pruebas escritas en TLA+2 en una colección de obligaciones de prueba que son enviadas a uno o más demostradores secundarios para que sean verificadas. Estos producen trazas o scripts de las pruebas verificadas que luego deben certificarse en un entorno lógico como el asistente de pruebas genérico Isabelle. De esta forma, el núcleo del entorno lógico es el único componente confiable del sistema de pruebas de TLA+. El lenguaje TLA+ está siendo formalizado en Isabelle como una nueva lógica-objeto llamada Isabelle/TLA+. Hasta el momento incluye un subconjunto de la lógica de primer orden, teoría de conjuntos, funciones, puntos fijos y la construcción de números naturales, y se instanciaron los principales métodos de prueba semi-automáticos ya existentes en Isabelle.  El objetivo de este trabajo es extender Isabelle/TLA+ para dar soporte a la aritmética estándar de TLA+ sobre los números naturales y enteros. Esto implica definir axiomáticamente los operadores aritméticos y probar sus propiedades para aumentar el poder de razonamiento de los métodos de prueba automáticos, lo que permitirá al TLAPM certificar las pruebas de especificaciones que utilizan aritmética

    Encoding TLA+ into unsorted and many-sorted first-order logic

    Get PDF
    International audienceTLA+ is a specification language designed for the verification of concurrent and distributed algorithms and systems. We present an encoding of a non-temporal fragment of TLA+ into (unsorted) first-order logic and many-sorted first-order logic, the input languages of first-order automated theorem provers. The non-temporal subset of TLA+ is based on untyped set theory and includes functions, arithmetic expressions, and Hilbert's choice operator. The translation, based on encoding techniques such as boolification, injection of unsorted expressions into sorted languages, term rewriting, and abstraction, is the core component of a back-end prover based on first-order theorem provers and SMT solvers for the TLA+ Proof System

    Towards certification of TLA+ proof obligations with SMT solvers

    Get PDF
    International audienceTLA+ is a formal specification language that is based on Zermelo-Fränkel set theory and the Temporal Logic of Actions TLA. The TLA+ proof system TLAPS assists users in deductively verifying safety properties of TLA+ specifications. TLAPS is built around a proof manager, which interprets the TLA+ proof language, generates corresponding proof obligations, and passes them to backend verifiers. In this paper we present a new backend for use with SMT solvers that supports elementary set theory, functions, arithmetic, tuples, and records. We introduce a typing discipline for TLA+ proof obligations, which helps us to disambiguate the translation of expressions of (untyped) TLA+, while ensuring its soundness. Our work is a first step towards the certification of proofs generated by proof-producing SMT solvers in Isabelle/TLA+, which is intended to be the only trusted component of TLAPS

    Harnessing SMT Solvers for TLA+ Proofs

    Get PDF
    International audienceTLA+ is a language based on Zermelo-Fraenkel set theory and linear temporal logic designed for specifying and verifying concurrent and distributed algorithms and systems. The TLA+ proof system TLAPS allows users to interactively verify safety properties of these systems. At the core of TLAPS, a proof manager interprets the proof language, generates corresponding proof obligations and passes them to backend provers. We recently developed a backend that relies on a typing discipline to encode (untyped) TLA+ formulas into multi-sorted first-order logic for SMT solvers. In this paper we present a different encoding of TLA+ formulas that does not require explicit type inference for TLA+ expressions. We also present a number of techniques based on rewriting in order to simplify the resulting formulas

    Proof automation and type synthesis for set theory in the context of TLA+

    No full text
    Cette thèse présente des techniques efficaces pour déléguer des obligations de preuves TLA+ dans des démonstrateurs automatiques basées sur la logique du premier ordre non-sortée et multi-sortée. TLA+ est un langage formel pour la spécification et vérification des systèmes concurrents et distribués. Sa partie non-temporelle basée sur une variante de la théorie des ensembles Zermelo-Fraenkel permet de définir des structures de données. Le système de preuves TLAPS pour TLA+ est un environnement de preuve interactif dans lequel les utilisateurs peuvent vérifier de manière déductive des propriétés de sûreté sur des spécifications TLA+. TLAPS est un assistant de preuve qui repose sur les utilisateurs pour guider l’effort de preuve, il permet de générer des obligations de preuve puis les transmet aux vérificateurs d’arrière-plan pour atteindre un niveau satisfaisant d’automatisation. Nous avons développé un nouveau démonstrateur d’arrière-plan qui intègre correctement dans TLAPS des vérificateurs externes automatisés, en particulier, des systèmes ATP et solveurs SMT. Deux principales composantes constituent ainsi la base formelle pour la mise en oeuvre de ce nouveau vérificateur. Le premier est un cadre de traduction générique qui permet de raccorder à TLAPS tout démonstrateur automatisé supportant les formats standards TPTP/ FOF ou SMT-LIB/AUFLIA. Afin de coder les expressions d’ordre supérieur, tels que les ensembles par compréhension ou des fonctions totales avec des domaines, la traduction de la logique du premier ordre repose sur des techniques de réécriture couplées à une méthode par abstraction. Les théories sortées telles que l’arithmétique linéaire sont intégrés par injection dans la logique multi-sortée. La deuxième composante est un algorithme pour la synthèse des types dans les formules (non-typées) TLA+. L’algorithme, qui est basé sur la résolution des contraintes, met en oeuvre un système de type avec types élémentaires, similaires à ceux de la logique multi-sortée, et une extension avec des types dépendants et par raffinement. Les informations de type obtenues sont ensuite implicitement exploitées afin d’améliorer la traduction. Cette approche a pu être validé empiriquement permettant de démontrer que les vérificateurs ATP/SMT augmentent de manière significative le développement des preuves dans TLAPSThis thesis presents effective techniques for discharging TLA+ proof obligations to automated theorem provers based on unsorted and many-sorted first-order logic. TLA+ is a formal language for specifying and verifying concurrent and distributed systems. Its non-temporal fragment is based on a variant of Zermelo-Fraenkel set theory for specifying the data structures. The TLA+ Proof System TLAPS is an interactive proof environment in which users can deductively verify safety properties of TLA+ specifications. While TLAPS is a proof assistant that relies on users for guiding the proof effort, it generates proof obligations and passes them to backend verifiers to achieve a satisfactory level of automation. We developed a new back-end prover that soundly integrates into TLAPS external automated provers, specifically, ATP systems and SMT solvers. Two main components provide the formal basis for implementing this new backend. The first is a generic translation framework that allows to plug to TLAPS any automated prover supporting the standard input formats TPTP/FOF or SMT-LIB/AUFLIA. In order to encode higher-order expressions, such as sets by comprehension or total functions with domains, the translation to first-order logic relies on term-rewriting techniques coupled with an abstraction method. Sorted theories such as linear integer arithmetic are homomorphically embedded into many-sorted logic. The second component is a type synthesis algorithm for (untyped) TLA+ formulas. The algorithm, which is based on constraint solving, implements one type system for elementary types, similar to those of many-sorted logic, and an expansion with dependent and refinement types. The obtained type information is then implicitly exploited to improve the translation. Empirical evaluation validates our approach: the ATP/SMT backend significantly boosts the proof development in TLAP

    Automatisation de preuves et synthèse de types pour la théorie des ensembles dans le contexte de TLA+

    Get PDF
    This thesis presents effective techniques for discharging TLA+ proofobligations to automated theorem provers based on unsorted and many-sortedfirst-order logic. TLA+ is a formal language for specifying and verifyingconcurrent and distributed systems. Its non-temporal fragment is based on avariant of Zermelo-Fraenkel set theory for specifying the data structures. TheTLA+ Proof System TLAPS is an interactive proof environment in which users candeductively verify safety properties of TLA+ specifications. While TLAPS is aproof assistant that relies on users for guiding the proof effort, itgenerates proof obligations and passes them to backend verifiers to achieve asatisfactory level of automation.We developed a new back-end prover that soundly integrates into TLAPS externalautomated provers, specifically, ATP systems and SMT solvers. Two maincomponents provide the formal basis for implementing this new back-end. Thefirst is a generic translation framework that allows to plug to TLAPS anyautomated prover supporting the standard input formats TPTP/FOF orSMT-LIB/AUFLIA. In order to encode higher-order expressions, such as sets bycomprehension or total functions with domains, the translation to first-orderlogic relies on term-rewriting techniques coupled with an abstraction method.Sorted theories such as linear integer arithmetic are homomorphically embeddedinto many-sorted logic. The second component is a type synthesis algorithm for(untyped) TLA+ formulas. The algorithm, which is based on constraint solving,implements one type system for elementary types, similar to those ofmany-sorted logic, and an expansion with dependent and refinement types. Theobtained type information is then implicitly exploited to improve thetranslation. Empirical evaluation validates our approach: the ATP/SMT backendsignificantly boosts the proof development in TLAPS.Cette thèse présente des techniques efficaces pour déleguer des obligations depreuves TLA+ dans des démonstrateurs automatiques basées sur la logique dupremier ordre non-sortée et multi-sortée. TLA+ est un langage formel pour laspécification et vérification des systèmes concurrents et distribués. Sapartie non-temporelle basée sur une variante de la théorie des ensemblesZermelo-Fraenkel permet de définir des structures de données. Le système depreuves TLAPS pour TLA+ est un environnement de preuve interactif dans lequelles utilisateurs peuvent vérifier de manière deductive des propriétés desûreté sur des spécifications TLA+. TLAPS est un assistant de preuve quirepose sur les utilisateurs pour guider l’effort de preuve, il permet degénèrer des obligations de preuve puis les transmet aux vérificateursd’arrière-plan pour atteindre un niveau satisfaisant d’automatisation.Nous avons développé un nouveau démonstrateur d’arrière-plan qui intègrecorrectement dans TLAPS des vérificateurs externes automatisés, enparticulier, des systèmes ATP et solveurs SMT. Deux principales composantesconstituent ainsi la base formelle pour la mise en oeuvre de ce nouveau vérificateur. Le premier est un cadre de traduction générique qui permet deraccorder à TLAPS tout démonstrateur automatisé supportant les formatsstandards TPTP/ FOF ou SMT-LIB/AUFLIA. Afin de coder les expressions d’ordresupérieur, tels que les ensembles par compréhension ou des fonctionstotales avec des domaines, la traduction de la logique du premier ordrerepose sur des techniques de réécriture couplées à une méthode parabstraction. Les théories sortées telles que l’arithmétique linéairesont intégrés par injection dans la logique multi-sortée. La deuxièmecomposante est un algorithme pour la synthèse des types dans les formules(non-typées) TLA+. L’algorithme, qui est basé sur la résolution descontraintes, met en oeuvre un système de type avec types élémentaires,similaires à ceux de la logique multi-sortée, et une extension avec destypes dépendants et par raffinement. Les informations de type obtenues sontensuite implicitement exploitées afin d’améliorer la traduction. Cetteapproche a pu être validé empiriquement permettant de démontrer que lesvérificateurs ATP/SMT augmentent de manière significative le développement des preuves dans TLAPS

    TLA+ Proofs

    No full text
    International audienceTLA+ is a specification language based on standard set theory and temporal logic that has constructs for hierarchical proofs. We describe how to write TLA+ proofs and check them with TLAPS, the TLA+ Proof System. We use Peterson's mutual exclusion algorithm as a simple example and show how TLAPS and the Toolbox (an IDE for TLA+) help users to manage large, complex proofs. A shorter version of this article was published at the conference Formal Methods 2012

    TLA+ Proofs

    No full text
    International audienceTLA+ is a specification language based on standard set theory and temporal logic that has constructs for hierarchical proofs. We describe how to write TLA+ proofs and check them with TLAPS, the TLA+ Proof System. We use Peterson's mutual exclusion algorithm as a simple example and show how TLAPS and the Toolbox (an IDE for TLA+) help users to manage large, complex proofs. A shorter version of this article was published at the conference Formal Methods 2012
    corecore